package com.info.zhiduoduo.repository.entity.maker;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import lombok.Data;
import lombok.experimental.Accessors;

/**
 * <p>
 *  受托人创客的企业支付宝转账支付等订单表, 与支付宝平台上的订单一一对应
 * </p>
 *
 * @author bob
 * @since 2021-07-11
 */
@Data
@Accessors(chain = true)
@TableName("zdd_maker_alipay_account_order")
public class MakerAlipayAccountOrder extends Model<MakerAlipayAccountOrder> {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 订单编号
     */
    @TableField("order_no")
    private String orderNo;
    /**
     * 签约主体ISV id
     */
    @TableField("isv_id")
    private Integer isvId;
    /**
     * 受托人创客id
     */
    @TableField("entrustee_id")
    private Integer entrusteeId;
    /**
     * 受托人资金记账本id, 支付宝系统的id
     */
    @TableField("account_book_id")
    private String accountBookId;
    /**
     * 支付宝平台的订单编号
     */
    @TableField("alipay_order_no")
    private String alipayOrderNo;
    /**
     * 支付宝平台的订单编号
     */
    @TableField("alipay_pay_fund_order_id")
    private String alipayPayFundOrderId;
    /**
     * 业务类型: 1:委托人给自己充值 2:委托人转账给受托人 3:受托人代付到户 4:受托人退款给委托人; 参考 AlipayOrderEnum 枚举
     */
    private Integer type;
    /**
     * 订单项目id- 委托接单子项目id
     */
    @TableField("project_id")
    private Integer projectId;
    /**
     * 订单金额
     */
    private BigDecimal amount;
    /**
     * 订单标题
     */
    private String title;
    /**
     * 订单备注
     */
    private String remark;
    /**
     * 收款方类型,对应支付宝账户类型 AlipayIdentityEnum
     */
    @TableField("payee_type")
    private Integer payeeType;
    /**
     * 收款方账号id, 比如记账本id,支付宝登陆账号,银行卡号等
     */
    @TableField("payee_id")
    private String payeeId;
    /**
     * 收款方的支付宝平台签约号
     */
    @TableField("payee_agreement_no")
    private String payeeAgreementNo;
    /**
     * 收款方账户名称,姓名或企业名
     */
    @TableField("payee_name")
    private String payeeName;
    /**
     * 是否已经重新支付 0:否 1:是' AFTER `payee_name
     */
    private Integer repay;
    /**
     * 订单状态 1:CREATE新建 2:SUCCESS成功 3:WAIT_PAY等待支付 4:CLOSED订单超时关闭
     */
    private Integer state;
    /**
     * 支付宝返回的状态,与state 一一对应, 参考 AlipayOrderStatusEnum
     */
    @TableField("alipay_status")
    private String alipayStatus;
    /**
     * 支付宝返回的信息
     */
    @TableField("alipay_msg")
    private String alipayMsg;
    /**
     * 支付宝报错code
     */
    @TableField("alipay_error_code")
    private String alipayErrorCode;
    /**
     * 支付宝报错msg
     */
    @TableField("alipay_error_msg")
    private String alipayErrorMsg;
    /**
     * 订单结束时间,成功或失败
     */
    @TableField("finish_time")
    private Date finishTime;
    /**
     * 申请回单唯⼀标识
     */
    @TableField("receipt_file_id")
    private String receiptFileId;
    /**
     * 回单文件下载url
     */
    @TableField("receipt_download_url")
    private String receiptDownloadUrl;
    /**
     * 回单文件是否已经下载成功 0：否 1：是
     */
    @TableField("receipt_downloaded")
    private Integer receiptDownloaded;
    /**
     * 操作人id
     */
    private Integer adminid;
    private Date createtime;
    private Date updatetime;


    @Override
    protected Serializable pkVal() {
        return this.id;
    }

}
